]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
15 months agodbusServices/extensions: Add tooltip to copy button
Florian Müllner [Wed, 11 Jun 2025 22:09:41 +0000 (00:09 +0200)]
dbusServices/extensions: Add tooltip to copy button

This is an oversight: Icon buttons need either a tooltip or an
accessible label. In this case, a tooltip seems appropriate[0].

[0] https://developer.gnome.org/hig/patterns/feedback/tooltips.html#tooltips

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Use static class blocks for gtype registration
Florian Müllner [Thu, 22 May 2025 01:22:49 +0000 (03:22 +0200)]
dbusServices/extensions: Use static class blocks for gtype registration

Static class blocks are a more readable alternative to _classInit(),
provided we make sure to call registerClass() first.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agodbusServices/extensions: Use regular constructors
Florian Müllner [Thu, 22 May 2025 01:27:51 +0000 (03:27 +0200)]
dbusServices/extensions: Use regular constructors

Regular constructors have worked for GObject subclasses for a couple
of years now. While there is no functional difference to _init(),
it's simply nicer to use the same syntax for all classes, so quickly
change that before doing further changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3750>

15 months agoConnect to DnD signals using connectObject()
Jonas Dreßler [Sat, 5 Nov 2022 21:36:47 +0000 (22:36 +0100)]
Connect to DnD signals using connectObject()

Currently DnD uses `disconnectAll()` in a `::destroy` signal handler for
the drag actor. This is a little weird, as usually the connecting object
is in charge of disconnecting as well.

Since we have some nice convenience API for this nowadays, use
`connectObject()` when connecting to DnD signals in the various draggable
actors that we have, which ensures the signal is disconnected as soon as
the draggable actors get destroyed.

This allows removing the call to `disconnectAll()` in DnD.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agosmartcardManager: Properly disconnect signal connections from tokens
Jonas Dreßler [Thu, 24 Jul 2025 23:30:29 +0000 (01:30 +0200)]
smartcardManager: Properly disconnect signal connections from tokens

The `token.disconnectAll()` call here is not going to work: The method is
provided by gjs as convenience for native JS objects (added to an object
using `Signals.addSignalMethods()`). The token here meanwhile is a GObject,
which doesn't have a `disconnectAll()` method.

To make it (hopefully) work as intended, use the convenience functions
that we actually do add to GObjects, that is `connectObject()` and
`disconnectObject()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agostatus/thunderbolt: Connect to signals using connectObject
Jonas Dreßler [Thu, 24 Jul 2025 23:08:01 +0000 (01:08 +0200)]
status/thunderbolt: Connect to signals using connectObject

To ensure that we disconnect from those signals when the Indicator goes
away, use the `connectObject()` convenience function.

This also allows removing the call to `disconnectAll()` in the AuthRobot
`close()` method.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agostatus/thunderbolt: Actually connect onDestroy callback
Jonas Dreßler [Thu, 24 Jul 2025 23:13:03 +0000 (01:13 +0200)]
status/thunderbolt: Actually connect onDestroy callback

Seems this was forgotten in the initial commit adding the new indicator.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agoappDisplay: Set popup menu side via parameter to AppIcon class
Jonas Dreßler [Mon, 24 Jul 2023 20:22:49 +0000 (22:22 +0200)]
appDisplay: Set popup menu side via parameter to AppIcon class

Let's make the "side" argument to the popupMenu() function for app icons
a param to the AppIcon class itself. The side is not that dynamic that it
needs to be defined on calling of the function, instead it can be defined
on creation of the AppIcon as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3796>

15 months agobarLevel: Remove redundant cairo fill calls
Khalid Abu Shawarib [Wed, 30 Jul 2025 16:30:52 +0000 (19:30 +0300)]
barLevel: Remove redundant cairo fill calls

Drop the redundant fillPreserve() calls where there already is a fill().
This is also caused by 6fd0aac86.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3817>

15 months agoslider: Don't preserve paths after filling
Sebastian Keller [Wed, 30 Jul 2025 13:24:29 +0000 (15:24 +0200)]
slider: Don't preserve paths after filling

Prior to 6fd0aac86 the paths were preserved when filling to allow
stroking the path afterwards. The stroke() then would have cleared the
path. Then when the stroking was dropped in that commit, a second fill()
call, this time without preserving the path was added, but missed from
the end arc of the bar level. This then would leak the path to the
slider handle.

Fix this by always using fill() instead of fillPreserve().

Fixes: 6fd0aac86 ("slider: Remove border drawing code add hover style")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3817>

15 months agoci: Stop including eslint/jsdoc in image
Florian Müllner [Tue, 10 Jun 2025 12:50:27 +0000 (14:50 +0200)]
ci: Stop including eslint/jsdoc in image

We no longer use the globally installed packages, so stop adding
them.

Given that recent versions of eslint make it increasingly hard to
install the package globally, this was bound to happen eventually
anyway.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agoci: Use run-eslint.sh wrapper to lint code snippets in docs
Florian Müllner [Tue, 10 Jun 2025 11:32:08 +0000 (13:32 +0200)]
ci: Use run-eslint.sh wrapper to lint code snippets in docs

This means we only have to deal with a single entry point for
eslint, plus we get the option to produce fancy MR reports.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agotools: Add rules override for code snippets in docs
Florian Müllner [Tue, 10 Jun 2025 09:00:52 +0000 (11:00 +0200)]
tools: Add rules override for code snippets in docs

The snippets don't have context, so any rules that catch undefined
or unused stuff don't apply.

We currently disable those rules via command-line parameters. Including
it in the config instead will allow to re-use the run-eslint.sh wrapper.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agolint: Remove old configuration
Florian Müllner [Tue, 10 Jun 2025 01:12:58 +0000 (03:12 +0200)]
lint: Remove old configuration

It is unused after the switch to the new flat config format.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agoci: Use script from tools to run eslint
Florian Müllner [Tue, 10 Jun 2025 01:15:21 +0000 (03:15 +0200)]
ci: Use script from tools to run eslint

Now that we include a more public version of the script, there
is no reason to keep the original script just for CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agotools: Switch to flat config for eslint
Florian Müllner [Tue, 10 Jun 2025 01:11:05 +0000 (03:11 +0200)]
tools: Switch to flat config for eslint

Both the .json and .yml config formats are deprecated in favor
of flat configs exported from eslint.config.js files.

The good news is that gjs' config is now available as a shared
config from the `eslint-config-gnome` package in World/javascript,
so we no longer have to copy the entire thing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agotools: Add run-eslint.sh script
Florian Müllner [Tue, 10 Jun 2025 00:36:50 +0000 (02:36 +0200)]
tools: Add run-eslint.sh script

The script is a small wrapper around the `ci-run-eslint` package
from World/javascript, which is a generalized and improved version
of the .gitlab-ci/run-eslint script we are currently using.

It only requires `npm` to be available, so it simplifies running
eslint locally quite a lot.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3746>

15 months agoRequire gjs >= 1.81.2 for build because Intl.Segmenter is needed
Mike FABIAN [Wed, 30 Jul 2025 09:53:47 +0000 (11:53 +0200)]
Require gjs >= 1.81.2 for build because Intl.Segmenter is needed

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3816>

15 months agopanel: Remove AppMenu button
Florian Müllner [Wed, 14 May 2025 23:15:59 +0000 (01:15 +0200)]
panel: Remove AppMenu button

The indicator was removed more than two years ago in commit 3ea672ef.

There have been no discussions on bringing it back since then, so
it's safe to assume that the code is dead and can be removed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3815>

15 months agomagnifier: Scale the sprite to match the current monitor scaling
Marco Trevisan (Treviño) [Wed, 27 Mar 2019 15:14:39 +0000 (16:14 +0100)]
magnifier: Scale the sprite to match the current monitor scaling

Compute the sprite texture scale (unfortunately using a workaround, based on
mutter cursor size preferences, tying to figure out the closest texture integer
scaling), and use this value to compute the scaling that should be applied to
the sprite in order to match the current monitor scaling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/475>

15 months agoUpdate Slovenian translation
Martin [Sat, 26 Jul 2025 15:16:53 +0000 (15:16 +0000)]
Update Slovenian translation

15 months agopo: Update POTFILES.in
Florian Müllner [Tue, 22 Jul 2025 22:00:44 +0000 (00:00 +0200)]
po: Update POTFILES.in

Commit f391115 dropped the org.gnome.Shell.desktop file and
removed one level of preprocessing from auxiliary .desktop files.

Update POTFILES.in to reflect those changes.

Fixes: f3911151da ("data: Drop org.gnome.Shell.desktop")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8535
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3807>

15 months agoci: Install dependencies when using custom destdir
Florian Müllner [Mon, 21 Jul 2025 19:36:27 +0000 (21:36 +0200)]
ci: Install dependencies when using custom destdir

Commit fd4320156c9 changed the `update-mutter` command inside the
toolbox to also install into the sysext extension dir, so people
who don't build mutter themselves can still use the sysext tooling.

Except they can't, because additional dependencies from mutter's
install-common-dependencies.sh script are missing as the script
is currently only invoked by the meson-build script.

Fix that by also running the script when running install-meson-project
with a destdir, as is done from the update-mutter command.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3805>

15 months agoscreencapture: Remove the period from some notification descriptions
Julian Sparber [Sun, 20 Jul 2025 16:11:40 +0000 (18:11 +0200)]
screencapture: Remove the period from some notification descriptions

We usually don't have periods at the end of descriptions for
notification.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3210>

15 months agoscreencapture: Use same source for all screen capture notifications
Julian Sparber [Mon, 26 Feb 2024 10:06:34 +0000 (11:06 +0100)]
screencapture: Use same source for all screen capture notifications

We group notifications by source but in order to have it working
we actually need to use the same source object.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6187
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3210>

15 months agodata: Drop org.gnome.Shell.desktop
Adrian Vovk [Wed, 9 Jul 2025 01:02:29 +0000 (21:02 -0400)]
data: Drop org.gnome.Shell.desktop

gnome-session no longer launches gnome-shell via a .desktop file,
because gnome-session no longer has a builtin service manager.

gnome-shell is now always launched via systemd

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3806>

15 months agoRevert "main: Notify gnome-session when we're ready"
Adrian Vovk [Wed, 9 Jul 2025 00:56:18 +0000 (20:56 -0400)]
Revert "main: Notify gnome-session when we're ready"

This reverts commit 1747a59aa5d44f4d7b74e1f1fee1d48174a1ce5a.

gnome-session is no longer a service manager, and thus doesn't need to
be notified of our readiness like this. We now do this exclusively
through systemd

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3806>

15 months agostatus/accessibility: Use named icons for quick settings actions
Sam Hewitt [Thu, 3 Jul 2025 19:08:31 +0000 (16:38 -0230)]
status/accessibility: Use named icons for quick settings actions

- add symbolic assets for private-use actions

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3791>

15 months agoci: Bump mutter image
Florian Müllner [Mon, 21 Jul 2025 15:18:56 +0000 (17:18 +0200)]
ci: Bump mutter image

Mutter depends on a newer wayland version, so update the image to
satisfy the dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3804>

15 months agoscreenshot: Fix taking interactive screenshots via D-Bus
Florian Müllner [Sat, 19 Jul 2025 12:12:46 +0000 (14:12 +0200)]
screenshot: Fix taking interactive screenshots via D-Bus

The D-Bus method relies on the `screenshot-taken` and `closed` signals
to differentiate successful operations from canceled/failed ones.

However as the `screenshot-taken` signal is emitted asynchronously,
it may end up being emitted after the `closed` signal even in case
of success. Await the result to ensure correct ordering.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8499
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3803>

15 months agologinDialog: Store items in map
Florian Müllner [Tue, 8 Jul 2025 19:26:27 +0000 (21:26 +0200)]
loginDialog: Store items in map

Using the dedicated standard type is a bit cleaner and more optimized
than using "raw" objects as hashes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3799>

15 months agoUpdate Interlingua translation
Emilio Sepúlveda [Wed, 16 Jul 2025 17:05:10 +0000 (17:05 +0000)]
Update Interlingua translation

15 months agoBump gsd version to 49.alpha
Joan Torres Lopez [Tue, 15 Jul 2025 10:57:19 +0000 (12:57 +0200)]
Bump gsd version to 49.alpha

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3797>

15 months agoci: Update MUTTER_CI_IMAGE to ensure the new gsetting on the image
Joan Torres Lopez [Tue, 15 Jul 2025 09:06:03 +0000 (11:06 +0200)]
ci: Update MUTTER_CI_IMAGE to ensure the new gsetting on the image

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3797>

15 months agosystemActions: Optionally allow restart/shutdown on lock screen
Joan Torres Lopez [Tue, 15 Jul 2025 09:27:01 +0000 (11:27 +0200)]
systemActions: Optionally allow restart/shutdown on lock screen

Support the new 'restart-enabled' setting from 'org.gnome.desktop.screensaver'
to optionally allow restart/shutdown from the lock screen.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1584
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3797>

15 months agoutil: Don't consider consecutive dots as URLs
Sebastian Keller [Tue, 15 Jul 2025 08:08:45 +0000 (10:08 +0200)]
util: Don't consider consecutive dots as URLs

This now requires at least one character separating each dot for it to
be considered a URL. It also does not allow URLs starting with a dot
anymore.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8517
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3798>

15 months agoextensions-app: Port to AdwShortcutsDialog
Florian Müllner [Wed, 2 Jul 2025 19:30:11 +0000 (21:30 +0200)]
extensions-app: Port to AdwShortcutsDialog

GTK's ShortcutsWindow has been deprecated for a while, now libadwaita
added a replacement we can move to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3788>

15 months agologinDialog: Move session/a11y buttons into a box
Florian Müllner [Tue, 8 Jul 2025 15:42:56 +0000 (17:42 +0200)]
loginDialog: Move session/a11y buttons into a box

The intermediate container allows the theme to control the distance
from the edge and spacing between buttons, which is more accessible
to the designers than computing the values from code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3794>

15 months agologinDialog: Increase size of session/a11y buttons
Florian Müllner [Thu, 3 Jul 2025 14:15:18 +0000 (16:15 +0200)]
loginDialog: Increase size of session/a11y buttons

The buttons on the login screen for the session and accessibility
menus can easily be lost, due to a combination of their size and
position, and the large amount of empty space.

Increase their size a bit to lessen that effect.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8497
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3794>

15 months agoUpdate Romanian translation
Antonio Marin [Mon, 14 Jul 2025 13:02:38 +0000 (13:02 +0000)]
Update Romanian translation

15 months agoUpdate Turkish translation
Emin Tufan Çetin [Sun, 13 Jul 2025 11:50:51 +0000 (11:50 +0000)]
Update Turkish translation

15 months agonetwork: Make sortByName to properly handle null values
Marco Trevisan (Treviño) [Wed, 9 Jul 2025 03:56:27 +0000 (05:56 +0200)]
network: Make sortByName to properly handle null values

g_utf8_collate is not nullable, but is used in a relevant piece of code,
so better not to throw any error if a null value is compared

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3785>

15 months agonetwork: Do not consider networks without ID as available
Marco Trevisan (Treviño) [Mon, 30 Jun 2025 18:31:13 +0000 (20:31 +0200)]
network: Do not consider networks without ID as available

In some rare (and weird) cases network manager may provide us
connections without settings (since connection.get_settings() is
actually nullable, and this may lead to have a NULL connection ID, that
eventually breaks the network menu completely:

  (gnome-shell:1579214): GNOME Shell-CRITICAL **: 20:27:14.874: Error:
    Argument str2 may not be null

  Stack trace:
    _sortByName@resource:///org/gnome/shell/ui/status/network.js:119:21
    lowerBound@resource:///org/gnome/shell/misc/util.js:253:13
    insertSorted@resource:///org/gnome/shell/misc/util.js:279:25
    _upsert@resource:///org/gnome/shell/ui/status/network.js:128:21
    upsert@resource:///org/gnome/shell/ui/status/network.js:147:21
    _addConnection@resource:///org/gnome/shell/ui/status/network.js:578:38
    _syncConnections@resource:///org/gnome/shell/ui/status/network.js:511:18
    NMDeviceItem@resource:///org/gnome/shell/ui/status/network.js:469:14
    NMWiredDeviceItem@resource:///org/gnome/shell/ui/status/network.js:611:1
    _createDeviceMenuItem@resource:///org/gnome/shell/ui/status/network.js:1909:16
    _ensureDeviceItem@resource:///org/gnome/shell/ui/status/network.js:1744:27
    _syncDeviceItem@resource:///org/gnome/shell/ui/status/network.js:1717:18
    _addDevice@resource:///org/gnome/shell/ui/status/network.js:1767:14
    _loadInitialItems@resource:///org/gnome/shell/ui/status/network.js:1680:18
    setClient@resource:///org/gnome/shell/ui/status/network.js:1420:18
    setClient@resource:///org/gnome/shell/ui/status/network.js:1651:15
    _getClient/<@resource:///org/gnome/shell/ui/status/network.js:2126:30
    _getClient@resource:///org/gnome/shell/ui/status/network.js:2125:33
    async*_init@resource:///org/gnome/shell/ui/status/network.js:2119:14
    SystemIndicator@resource:///org/gnome/shell/ui/quickSettings.js:847:1
    Indicator@resource:///org/gnome/shell/ui/status/network.js:2073:1
    _setupIndicators@resource:///org/gnome/shell/ui/panel.js:523:29
    async*QuickSettings@resource:///org/gnome/shell/ui/panel.js:514:14
    _ensureIndicator@resource:///org/gnome/shell/ui/panel.js:903:25
    _updateBox@resource:///org/gnome/shell/ui/panel.js:914:34
    _updatePanel@resource:///org/gnome/shell/ui/panel.js:868:14
    _init@resource:///org/gnome/shell/ui/panel.js:692:14
    Panel@resource:///org/gnome/shell/ui/panel.js:648:1
    _initializeUI@resource:///org/gnome/shell/ui/main.js:246:13
    start@resource:///org/gnome/shell/ui/main.js:180:11
    @resource:///org/gnome/shell/ui/init.js:12:47
    @resource:///org/gnome/shell/ui/init.js:21:20

Now, despite that specific connection here has valid settings when
loaded from dbus, it may still happen that NM lib fails at other level in
fetching its settings.

That said, we should not fail if a connection has no settings, and
just skip it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3785>

16 months agoUpdate Interlingua translation
Emilio Sepúlveda [Tue, 8 Jul 2025 12:43:23 +0000 (12:43 +0000)]
Update Interlingua translation

16 months agoUpdate Interlingua translation
Emilio Sepúlveda [Mon, 7 Jul 2025 14:51:16 +0000 (14:51 +0000)]
Update Interlingua translation

16 months agoUpdate Interlingua translation
Emilio Sepúlveda [Sun, 6 Jul 2025 01:48:50 +0000 (01:48 +0000)]
Update Interlingua translation

16 months agost/button: Remove transition vfunc
Florian Müllner [Fri, 4 Jul 2025 17:49:02 +0000 (19:49 +0200)]
st/button: Remove transition vfunc

This was part of the original MxWidget import, but we never used
it for anything. After more than 15 years it is unlikely that we
are going to start, so remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3792>

16 months agoUpdate Slovenian translation
Martin [Thu, 3 Jul 2025 20:10:03 +0000 (20:10 +0000)]
Update Slovenian translation

16 months agoextensions-app: Add mnemonic to the "Log Out..." button from banner
Automeris naranja [Tue, 1 Jul 2025 19:37:36 +0000 (16:37 -0300)]
extensions-app: Add mnemonic to the "Log Out..." button from banner

It makes easier to trigger this button with the keyboard,
helping a11y.

See https://developer.gnome.org/hig/guidelines/keyboard.html#access-keys

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3786>

16 months agoUpdate Thai translation
Aefgh Threenine [Thu, 3 Jul 2025 11:57:47 +0000 (11:57 +0000)]
Update Thai translation

(cherry picked from commit 31d714b22dd7b97fa0ddb6160240ade80987ee14)

16 months agoUpdate Thai translation
Aefgh Threenine [Thu, 3 Jul 2025 10:58:46 +0000 (10:58 +0000)]
Update Thai translation

(cherry picked from commit e24e8aeb3de6c0467e9ead6ef7c36971f0863cbf)

16 months agodata: Replace org.gnome.Evince with org.gnome.Papers in Utilities
AsciiWolf [Wed, 26 Feb 2025 16:36:08 +0000 (17:36 +0100)]
data: Replace org.gnome.Evince with org.gnome.Papers in Utilities

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3611>

16 months agobuild: Bump Mutter ABI version
Carlos Garnacho [Mon, 26 May 2025 15:27:17 +0000 (17:27 +0200)]
build: Bump Mutter ABI version

We didn't do so for GNOME 49, so do it now.

16 months agoscreenShield: Fix pointer showing on motion
Carlos Garnacho [Sun, 29 Jun 2025 09:35:24 +0000 (11:35 +0200)]
screenShield: Fix pointer showing on motion

As an additional side effect of switching to the cursor visibility
inhibition API in the cursor tracker, there is no longer this
infighting in Mutter where pointer motion tries to set pointer
visibility on (since it's the last device used), and other places
wanting to inhibit it, such as the screenshield.

This resulted on the cursor wanting to show by itself, and somehow
trigger captured motion events on the ClutterStage. This no longer
happens, which results in the pointer staying hidden, seat unfocus
remaining uninhibited, and no motion events being sent in (since
the pointer device now does remain unfocused).

Fix this by:
- Setting a seat unfocus inhibition, so the pointer triggers motion
  and focus despite being hidden
- Connecting to captured events on the screen lock group widget,
  since captured events will respect the existing grab

This results in pointer motion again resulting on the cursor being
shown, when waking up the lockscreen.

Fixes: 91c6366e0 ("Adjust to cursor tracker visibility API changes")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3781>

16 months agoBump version to 49.alpha.1
Florian Müllner [Sat, 28 Jun 2025 15:03:19 +0000 (17:03 +0200)]
Bump version to 49.alpha.1

Update NEWS.

16 months agoUpdate Russian translation
Artur S0 [Sat, 28 Jun 2025 17:29:43 +0000 (17:29 +0000)]
Update Russian translation

16 months agoscreenshot: Remove gtk desktop portal from allowed senders
Florian Müllner [Mon, 23 Jun 2025 10:59:00 +0000 (12:59 +0200)]
screenshot: Remove gtk desktop portal from allowed senders

The gtk portal removed all portals that were relying on private
GNOME APIs, given that those are now implemented by the gnome portal.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3760>

16 months agoscreenshot: Remove gnome-screenshot from allowed senders
Florian Müllner [Sun, 22 Jun 2025 12:59:07 +0000 (14:59 +0200)]
screenshot: Remove gnome-screenshot from allowed senders

It was removed from core after we got a built-in screenshot UI in
the shell, and is mostly unmaintained nowadays.

There is no good reason anymore for treating it differently than other
3rd-party screenshot tools, so stop giving it default access to the
private screenshotting API.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3760>

16 months agologinDialog: Add a11y menu
Florian Müllner [Sat, 7 Jun 2025 17:13:59 +0000 (19:13 +0200)]
loginDialog: Add a11y menu

When quick settings become configurable, users can add the a11y
toggles they need to the regular quick settings menu. This does
not really work for the login screen, where all a11y features
should be available by default.

Address this by adding a dedicated a11y menu button next to the
session menu button.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3744>

16 months agostatus/accessibility: Export quick toggles
Florian Müllner [Sat, 7 Jun 2025 16:45:16 +0000 (18:45 +0200)]
status/accessibility: Export quick toggles

Implement quick toggles for every accessibility feature that is
currently exposed by the menu. Those toggles will eventually replace
the menu when quick setting become configurable.

However the login screen will use a dedicated accessibility menu
(once again), which does not depend on the quick settings feature,
so add the toggles now to allow implementing it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3744>

16 months agosessionMode: Remove a11y menu from 'gdm' mode
Florian Müllner [Sat, 7 Jun 2025 17:15:26 +0000 (19:15 +0200)]
sessionMode: Remove a11y menu from 'gdm' mode

The login screen will use a dedicated menu based on quick toggles.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3744>

16 months agocleanup: Remove unused eslint-disable directives
Florian Müllner [Wed, 18 Jun 2025 22:37:57 +0000 (00:37 +0200)]
cleanup: Remove unused eslint-disable directives

The 'camelcase' rule only applies to variables and properties,
not to function names or getter/setters.

The 'no-await-in-loop' rule only applies if there is a loop.

The 'require-atomic-updates' rule no longer applies to
properties by default.

The 'no-constant-condition' rule no longer applies to
`while(true)` by default.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3756>

16 months agotheme: Adjust 'clear' button whitespace
Jakub Steiner [Tue, 24 Jun 2025 11:09:41 +0000 (13:09 +0200)]
theme: Adjust 'clear' button whitespace

- keep corner radius concentric

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3691>

16 months agostatus/doNotDisturb: Add new quick toggle
Florian Müllner [Thu, 10 Apr 2025 18:09:35 +0000 (20:09 +0200)]
status/doNotDisturb: Add new quick toggle

It is a simple on/off control, which makes it a good fit for
quick settings. It also makes sense to expose the feature together
with other system controls, and while this somewhat removes the
control from the context of notifications, that doesn't seem to
be an issue on other platforms.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8339
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3691>

16 months agodateMenu: Stop indicating do-not-disturb status
Florian Müllner [Thu, 10 Apr 2025 18:17:16 +0000 (20:17 +0200)]
dateMenu: Stop indicating do-not-disturb status

The control for enabling/disabling do-not-disturb will be moved into
quick settings. It makes sense to then also move the indicator, so stop
showing the do-not-disturb status in the top bar's messages indicator.

Instead, just hide the indicator altogether when do-not-disturb
is active.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3691>

16 months agocalendar: Move "Clear" button to the start
Florian Müllner [Thu, 10 Apr 2025 18:49:40 +0000 (20:49 +0200)]
calendar: Move "Clear" button to the start

Aligning the button to the end is a bit odd after removing the
do-not-disturb switch, so move it to the start instead and make
it pill-shaped to align better with the popover.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3691>

16 months agocalendar: Remove do-not-disturb switch
Florian Müllner [Thu, 10 Apr 2025 18:22:22 +0000 (20:22 +0200)]
calendar: Remove do-not-disturb switch

While clearly related to notifications, having it in the already quite
crowded date/notification popover is quite awkward.

Also the canonical place for quickly accessing commonly used settings
is the quick settings menu nowadays.

So remove the existing control from the calendar menu before re-adding
the feature as quick toggle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3691>

16 months agowindowManager: Stop bridging pad changes to OLED updates
Carlos Garnacho [Wed, 30 Apr 2025 09:13:09 +0000 (11:13 +0200)]
windowManager: Stop bridging pad changes to OLED updates

The small OLEDs alongside pad buttons in Wacom Intuos 4 models will
stop being supported. See
https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/416

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3706>

16 months agost/entry: Forward label-actor to internal ClutterText
Florian Müllner [Thu, 26 Jun 2025 10:07:07 +0000 (12:07 +0200)]
st/entry: Forward label-actor to internal ClutterText

The StWidget:label-actor property is a convenient way of setting up an
actor's labelled-by relationship. However on StEntry, it is currently
fairly useless because if the entry is focused, the actual keyboard
focus will be on the internal ClutterText rather than the entry itself,
and orca ignores ancestors in most cases.

Address this by tracking the entry's label-actor property, and replicate
the labelled-by relationship on the internal ClutterText actor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3179>

16 months agost/entry: Use hint-actor as a11y description if possible
Florian Müllner [Fri, 9 Feb 2024 17:38:15 +0000 (18:38 +0100)]
st/entry: Use hint-actor as a11y description if possible

The hint-actor is used as a placeholder to explain the purpose
of an entry, but it currently isn't exposed to accessibility.

There is no good reason to not do that, so also use the actor
as described-by relationship, provided the actor is a label.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3179>

16 months agooverview: Delay showing until there is gesture progress
Florian Müllner [Thu, 26 Jun 2025 18:35:10 +0000 (20:35 +0200)]
overview: Delay showing until there is gesture progress

Currently swiping down in the session enters the overview, but
as there is no progress (clamped to 0 from negative), the only
visible effect is that the top bar transitions to transparent.

Avoid this glitch by delaying showing the overview until there
is some non-0 progress.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7456
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3777>

16 months agostyle: Adjust message list notification radius to fix mismatch
Sam Hewitt [Thu, 26 Jun 2025 14:05:10 +0000 (11:35 -0230)]
style: Adjust message list notification radius to fix mismatch

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8391
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3776>

16 months agostyle: Adjust the insenstive system text color for contrast
Sam Hewitt [Thu, 26 Jun 2025 13:56:46 +0000 (11:26 -0230)]
style: Adjust the insenstive system text color for contrast

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8428
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3776>

16 months agostyle: Restore drawing the slight border on panel in light theme
Sam Hewitt [Thu, 26 Jun 2025 13:37:08 +0000 (11:07 -0230)]
style: Restore drawing the slight border on panel in light theme

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8481
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3776>

16 months agoUpdate Slovenian translation
Martin [Wed, 25 Jun 2025 21:44:00 +0000 (21:44 +0000)]
Update Slovenian translation

16 months agotools/toolbox: Stop forcing wayland display
Florian Müllner [Wed, 25 Jun 2025 17:49:01 +0000 (19:49 +0200)]
tools/toolbox: Stop forcing wayland display

Mutter now updates the activation environment itself when running
outside a gnome-shell session.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3775>

16 months agopowerProfiles: Handle error if profile does not exists
Morgan [Wed, 25 Jun 2025 12:52:02 +0000 (21:52 +0900)]
powerProfiles: Handle error if profile does not exists

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3774>

16 months agopopupMenu: Use SEPARATOR a11y role for SeparatorMenuItems
Florian Müllner [Wed, 25 Jun 2025 11:53:50 +0000 (13:53 +0200)]
popupMenu: Use SEPARATOR a11y role for SeparatorMenuItems

SeparatorMenuItems are not activatable, so SEPARATOR is a more
appropriate role than MENU_ITEM.

This is also what GTK3 does with GtkSeparatorMenuItem.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3773>

16 months agoAdjust to cursor tracker visibility API changes
Sebastian Wick [Wed, 25 Jun 2025 11:15:24 +0000 (13:15 +0200)]
Adjust to cursor tracker visibility API changes

The old `Meta.CursorTracker.set_pointer_visible` method has been
replaced by `inhibit_cursor_visibility` and
`uninhibit_cursor_visibility`.

Change the code to use the new API which makes the code more robust
because we don't have to listen for changes and then try to force it
back to what we want.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3772>

16 months agodateMenu: Add accessibility to Events and Weather
Sergio Costas Rodriguez [Tue, 24 Jun 2025 16:20:21 +0000 (18:20 +0200)]
dateMenu: Add accessibility to Events and Weather

The Events element, with today events, and the Weather element,
with the weather in our location, lack accessibility names.

This patch fixes it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3769>

16 months agoauthPrompt: Notify error messages in GDM login/unlock
Sergio Costas Rodriguez [Tue, 24 Jun 2025 12:31:40 +0000 (14:31 +0200)]
authPrompt: Notify error messages in GDM login/unlock

When there is an error during GDM login or unlock (for example,
typing a wrong password), a text message is shown, but nothing
is said by the screen reader.

This patch fixes this, by notifying any error set in the auth
prompt.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3765>

16 months agotools: Set XDG_DATA_DIRS inside toolbox run script
Thomas Booker [Mon, 23 Jun 2025 06:13:08 +0000 (18:13 +1200)]
tools: Set XDG_DATA_DIRS inside toolbox run script

Some host OSes (like NixOS) have a weird $XDG_DATA_DIRS environment
variable that gets inherited into the toolbox and brakes GSettings schemas.
Address this by appending the default /usr/share to $XDG_DATA_DIRS if
necessary.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3761>

16 months agoextensions-tool: Fix security warnings about format string injection
Daniel van Vugt [Tue, 24 Jun 2025 06:59:21 +0000 (14:59 +0800)]
extensions-tool: Fix security warnings about format string injection

Fixes:
```
../subprojects/extensions-tool/src/command-upload.c: In function ‘response_get_token’:
../subprojects/extensions-tool/src/command-upload.c:126:7: warning: format not a string literal and no format arguments [-Wformat-security]
  126 |       g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, msg);
      |       ^~~~~~~~~~~
../subprojects/extensions-tool/src/command-upload.c: In function ‘session_get_login_token’:
../subprojects/extensions-tool/src/command-upload.c:294:20: warning: format not a string literal and no format arguments [-Wformat-security]
  294 |                    detail ? detail : soup_status_get_phrase (status));
      |                    ^~~~~~
../subprojects/extensions-tool/src/command-upload.c: In function ‘session_upload_file’:
../subprojects/extensions-tool/src/command-upload.c:357:20: warning: format not a string literal and no format arguments [-Wformat-security]
  357 |                    detail ? detail : soup_status_get_phrase (status));
      |                    ^~~~~~
```

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3764>

16 months agodata: Fix Passwords and Keys desktop file name
Daniel Rusek [Sat, 21 Jun 2025 11:54:19 +0000 (11:54 +0000)]
data: Fix Passwords and Keys desktop file name

It was renamed in https://gitlab.gnome.org/GNOME/seahorse/-/commit/6e8e3b9854c0a6a60d0b61f30def7eda275dd74c

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3759>

16 months agodata: Replace org.gnome.Totem with org.gnome.Showtime in App Grid
AsciiWolf [Wed, 26 Feb 2025 16:44:08 +0000 (17:44 +0100)]
data: Replace org.gnome.Totem with org.gnome.Showtime in App Grid

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3650>

16 months agodata: Fix Document Scanner desktop file name
Daniel Rusek [Sat, 21 Jun 2025 00:16:18 +0000 (00:16 +0000)]
data: Fix Document Scanner desktop file name

It was renamed in https://gitlab.gnome.org/GNOME/simple-scan/-/commit/87d40f27ff70397133ba785b120a4b1b1e6c3e17

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3758>

16 months agokeyring: Allow user to correct password after checking failed
Alynx Zhou [Fri, 20 Jun 2025 15:05:28 +0000 (23:05 +0800)]
keyring: Allow user to correct password after checking failed

Currently we make entries and buttons insensitive and do some checks
before calling the GcrPrompt implementation to complete. However, if
checks get failed, for example, new passwords mismatched due to typo,
we should make entries and buttons sensitive again to allow user to
correct it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3757>

16 months agosubprojects: Pin the libshew revision we use
Jordan Petridis [Wed, 18 Jun 2025 13:49:58 +0000 (16:49 +0300)]
subprojects: Pin the libshew revision we use

Meson doesn't have a lockfile, so we need to make sure ourselves that
the build is somewhat deterministic.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3754>

16 months agoUpdate Slovenian translation
Martin [Fri, 20 Jun 2025 19:59:45 +0000 (19:59 +0000)]
Update Slovenian translation

16 months agoUpdate Catalan translation
Jordi Mas [Fri, 20 Jun 2025 18:05:04 +0000 (20:05 +0200)]
Update Catalan translation

16 months agoextensions-tool: Add upload command
Florian Müllner [Sun, 11 May 2025 13:02:51 +0000 (15:02 +0200)]
extensions-tool: Add upload command

Add a new command for uploading new extension versions to
https://extensions.gnome.org. This is particularly useful
where the web interface is inconvenient or not available,
for example when uploading multiple extensions or from a
tag pipeline in CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3712>

16 months agolint: Require dangling comma in multi-line imports
Florian Müllner [Tue, 17 Jun 2025 13:57:02 +0000 (15:57 +0200)]
lint: Require dangling comma in multi-line imports

This keeps the config in line with gjs, which added the option
in gjs@f7d3b5d4c8.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3755>

16 months agomeson: Avoid glibc-specifics when not using glibc
Daniel van Vugt [Thu, 12 Jun 2025 05:34:29 +0000 (13:34 +0800)]
meson: Avoid glibc-specifics when not using glibc

This also requires Meson 1.3 to use compiler.has_define.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8457
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3748>

16 months agorunDialog: Set label-actor for entry
Florian Müllner [Tue, 3 Jun 2025 14:17:17 +0000 (16:17 +0200)]
runDialog: Set label-actor for entry

The dialog title is currently "invisible" to the screen reader,
so alt+F2 effectively brings up a plain entry with no context.

To address this, set the entry's label-actor to the dialog title,
so we export a proper labelled-by relationship to the screen reader.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3736>

16 months agostatus/keyboard: Limit the input method indicator to < 3 grapheme clusters
Mike FABIAN [Tue, 17 Jun 2025 13:48:42 +0000 (15:48 +0200)]
status/keyboard: Limit the input method indicator to < 3 grapheme clusters

The Javascript string length is not suitable for measuring the
approximate length of a rendered text in the input method
indicator. Most single code point emoji like `🚀 U+1F680` get length 2
already, adding a variation selector to make the emoji display in
black and white like `🚀︎ U+1F680 U+FE0E` makes the length 3. More
complicated emoji sequences may get much longer lengths even though
the still display as one character.  For example `👩‍👩‍👧‍👧 U+1F469,
U+200D, U+1F469, U+200D, U+1F467, U+200D, U+1F467` gets length 11.
This is not only the case for emoji but also for other text, for
example the Korean jamo `각 U+1100, U+1161, U+11A8` display as only 1
glyph but the Javascript length is 3.

A better way to measure the approximate length of a rendered text is
to count the Unicode grapheme clusters in the text using
Intl.Segmenter. This counts all the examples above as 1 grapheme
cluster each.

There seem to be some bugs in the Intl.Segmenter, for example
`क्षि U+0915, U+094D, U+0937, U+093F` is counted as 2 grapheme clusters,
the correct result should be 1. But it is good enough to measure
the approximate length of the input method indicator and certainly
better than the Javascript string length.

Resolves: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1026
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3753>

16 months agosubprojects: Switch to wrap to provide libshew
Florian Müllner [Wed, 4 Jun 2025 11:01:18 +0000 (13:01 +0200)]
subprojects: Switch to wrap to provide libshew

The Extensions app is very simple, but hard to contribute to
because the default workflow (open in Builder, hit run) does
not work due to the code being in a subtree of gnome-shell.

However it cannot be easily split into its own repository,
while the shew subproject is still provided gnome-shell.

To allow for the future split, libshew was moved into a
separate repo, so remove the in-tree subproject and replace
it with a meson wrap.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3738>

16 months agoworkspaceSwitcherPopup: Show on all displays
Oscar Sommerer [Sat, 31 May 2025 18:47:03 +0000 (20:47 +0200)]
workspaceSwitcherPopup: Show on all displays

Show the workspaceSwitcherPopup OSD on all displays if
`workspaces-only-on-primary` is false.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8105

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3734>

16 months agoUpdate Belarusian translation
Vasil Pupkin [Sun, 15 Jun 2025 13:18:52 +0000 (13:18 +0000)]
Update Belarusian translation

16 months agoUpdate Slovenian translation
Martin [Fri, 13 Jun 2025 06:55:23 +0000 (06:55 +0000)]
Update Slovenian translation

16 months agoappFavorites: Remove rename list
Michael Catanzaro [Fri, 6 Jun 2025 19:38:23 +0000 (14:38 -0500)]
appFavorites: Remove rename list

With the exception of Simple Scan, the last update to this list was 5
years ago. If Simple Scan is one of your favorite apps and you are still
using GNOME 43 or below, then I am sorry. Otherwise, this list is
entirely obsolete.

Don't rename desktop files. It's very disruptive.

If you do need to rename a desktop file for some reason, the user will
just have to pin the favorite app again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3743>